Utilizar cristal oscilador externo

Contenido

Configurar un microcontrolador AVR para que utilice un cristal externo en vez del oscilador interno.

El usar un cristal externo nos da una fuente de reloj mucho mas precisa y estable

Descripcion

Para conectar el cristal oscilador lo hacemos a los pines XTAL1 y XTAL2 del microcontrolador y a su vez tendremos que usar dos condensadores cerámicos de 22pf el circuito final es así:

Configurar Fuses

Para hacer funcionar el cristal externo tendremos que reconfigurar el "lfuse" del microcontrolador.

NOTA: una vez se haga el cambio para usar el cristal externo es necesario que el cristal esté conectado al microcontrolador, si no el microcontrolador no funcionará ya que no tendrá ninguna señal de reloj, INCLUSO para reprogramar el microcontrolador es necesario tener conectado el cristal.

Para configurar el lfuse para que funcione con el cristal externo lo haremos con:

avrdude -c usbasp -p m168pa -U lfuse:w:0x7F:m

NOTA: si queremos desactivar el divisor entre 8 (CKDIV8), para usar toda la velocidad del cristal, el bit a guardar sería 0xFF

Como se ha mencionado antes para usar el microcontrolador a partir de este momento es necesario tener conectado el cristal oscilador, por lo tanto incluso aunque queramos volver a la configuración para usar el oscilador interno necesitamos del cristal, si no tenemos un cristal oscilador para conectar al microcontrolador este quedará inservible ya que no tendrá ninguna señal de reloj e incluso se imposibilita el reprogramar los fuses.

Si queremos volver a la configuración por defecto para que vuelva a usar el oscilador interno lo haríamos con:

avrdude -c usbasp -p m168pa -U lfuse:w:0x62:m

Calibración

El oscilador interno es muy impreciso, se puede atrasar varios minutos por día, al usar un cristal externo nos da mucha mas precisión y estabilidad, pero aún así puede atrasarse unos segundos por día.

Si queremos usar el microcontrolador como un reloj tendremos que hacer alguna pequeña calibración a la hora de contar los segundos, ya sea añadir un pequeño retraso o un pequeño adelanto, esto podremos hacerlo siempre que observemos que la variación es constante en el tiempo, podemos compararlo con otro reloj para saber si nuestro cristal oscila mas rapido o mas lento de lo que debería.

Tags

AVR | microcontrolador | oscilador